#coding=utf-8
#coding=gbk
#coding=gb2312
import mysql.connector

class Database:##封装数据库的连接、查询执行和结果获取等操作
    def __init__(self):
        self.conn = mysql.connector.connect(
            host="localhost",
            user="root",
            password="123456",
            database="supermarket3.0"
        )
        self.cursor = self.conn.cursor()##self.cursor是游标对象，用于执行sql查询和获取结果

    def execute_query(self, query, params=None):#接收对象query,该参数是要执行的SQl查询语句；
        self.cursor.execute(query, params or ())#执行查询
        self.conn.commit()#提交当前事务，确保对数据库的更改生效

    def fetch_all(self, query, params=None):#执行查询并获取所有结果，query是查询语句
        self.cursor.execute(query, params or ())
        return self.cursor.fetchall()#返回查询结果的所有行，作为元组的列表

    def fetch_one(self, query, params=None):#执行查询并获取单个结果，query是查询语句
        self.cursor.execute(query, params or ())
        return self.cursor.fetchone()

    def close(self):#关闭数据库和游标
        self.cursor.close()
        self.conn.close()

